package com.xyx.ssm.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xyx.ssm.po.SyRole;
import com.xyx.ssm.po.Syauthority;
import com.xyx.ssm.po.Syroleauthority;
import com.xyx.ssm.service.SyauthorityService;
import com.xyx.ssm.service.SyroleService;
import com.xyx.ssm.util.Page;

@Controller
@RequestMapping(value = "/syrole")
public class SyroleAction {
	 @Resource
	private SyroleService syroleService;
	 @Autowired
	 private SyauthorityService syauthorityService;

	@RequestMapping("/pageView")
	public String pageView(Model model, Integer pageNow, String pageName,
			String departName) {
		return "role/syrole";
	}

	@RequestMapping("/jsons")
	@ResponseBody
	public Map<String, Object> jsons(Model model, Integer iDisplayLength,
			Integer sEcho, Integer iDisplayStart, String pageName,
			String departName) {

		Map<String, Object> map111 = new HashMap<String, Object>();
		// 用户名

		map111.put("pageName", "");
		if (sEcho == null) {
			sEcho = 1;
		}
		if (iDisplayLength == null) {
			iDisplayLength = 10;
		}
		if (iDisplayStart == null) {
			iDisplayStart = 1;
		}
		System.out.println(map111.toString());
		// 1:当前页码

		// 1:查询参数

		Page<Map<String, Object>> page = new Page<Map<String, Object>>(
				iDisplayStart, map111, iDisplayLength);
		Page<Map<String, Object>> page1 = syroleService.findPage(page);
		int num = page1.getList().size();
		Map<String, Object> map = new HashMap<String, Object>();
		List<Ceshi> list = new ArrayList<Ceshi>();
		for (int i = 0; i < num; i++) {
			Ceshi ceshi = new Ceshi();
			ceshi.setId(i);
			ceshi.setUsername(page1.getList().get(i).get("id").toString());
			list.add(ceshi);
		}
		map.put("sEcho", sEcho);
		map.put("iTotalRecords", page1.getTotalCount());
		map.put("iTotalDisplayRecords", page1.getTotalCount());
		map.put("aaData", page1.getList());
		return map;
	}

	/**

	 * 酒品牌的添加

	 * 

	 * @param rolename

	 * @param roledetail

	 * @return

	 */
	@RequestMapping("/syroleadd")
	@ResponseBody
	public Map<String, Object> syroleadd(String rolename, String roledetail) {

		Map<String, Object> map = new HashMap<String, Object>();
		//

		map.put("rolename", rolename);
		map.put("roledetail", roledetail);
		int num = syroleService.syroleadd(map);
		Map<String, Object> mapjson = new HashMap<String, Object>();
		if (num > 0) {
			mapjson.put("flag", true);
			mapjson.put("msg", "添加成功！");
		} else {
			mapjson.put("flag", false);
			mapjson.put("msg", "添加失败！");
		}
		return mapjson;
	}

	@RequestMapping("/syroledelete")
	@ResponseBody
	public Map<String, Object> syroledelete(String ids) {

		int num = syroleService.syroleDelete(ids);
		Map<String, Object> mapjson = new HashMap<String, Object>();
		if (num > 0) {
			mapjson.put("flag", true);
			mapjson.put("msg", "删除成功！");
		} else {
			mapjson.put("flag", false);
			mapjson.put("msg", "删除失败！");

		}
		return mapjson;
	}

	@RequestMapping("/syroledetail")
	@ResponseBody
	public Map<String, Object> syroledetail(Integer id) {

		System.out.println("so easy -" + id);
		List<SyRole> list = syroleService.syroleId(id);
        System.out.println("-------------------------------:"+list);
		Map<String, Object> mapjson = new HashMap<String, Object>();

		mapjson.put("rolename", list.get(0).getRolename());
		mapjson.put("roledetail", list.get(0).getRoledetail());
		mapjson.put("id", id);

		return mapjson;
	}
	
	@RequestMapping("/syroleupdate")
	@ResponseBody
	public Map<String, Object> syroleUpdate(int id,String rolename,String roledetail) {

		SyRole syRole =new SyRole();
		
		syRole.setId(id);
		syRole.setRoledetail(roledetail);
		syRole.setRolename(rolename);
		int num= syroleService.syroleUpdate(syRole);
		Map<String, Object> mapjson = new HashMap<String, Object>();
		if(num>0){
			mapjson.put("flag", true);
			mapjson.put("msg", "修改成功！");
		}else{
			mapjson.put("flag", false);
			mapjson.put("msg", "修改失败！");
		}

		return mapjson;
	}
	
	
	
	@RequestMapping("/jsonauthority")
	@ResponseBody
	public Map<String, Object> jsonauthority(HttpSession session,Integer id){
		
		List<Syauthority> list=syauthorityService.selallauthority();
		System.out.println(list.toString());
		session.setAttribute("authlist", list);
		Map<String, Object> json=new HashMap<String, Object>();
		json.put("id", id);
				return json;
	}
	
	/**
	 * 给角色授权
	 */
	@RequestMapping("/insertroleauthority")
	@ResponseBody
	public Map<String, Object> insertroleauthority(String ids) {
		String[] idarray = ids.split(",");
		int roleid=Integer.parseInt(idarray[0]);
		int num = 1;
		syauthorityService.deleteall(roleid);
		for (int i=1;i<idarray.length;i++) {
			int id = Integer.parseInt(idarray[i]);
			Syroleauthority ra=new Syroleauthority();
			if(i!=0){
				
				ra.setRoleid(roleid);
				ra.setAuthid(id);				
				num = syroleService.insertroleauthority(ra);
				}
		}
		Map<String, Object> mapjson = new HashMap<String, Object>();
		if (num > 0) {
			mapjson.put("flag", true);
			mapjson.put("msg", "授权成功！");
		} else {
			mapjson.put("flag", false);
			mapjson.put("msg", "授权失败！");
		}
		return mapjson;
	}
}

